package Client;

import Serveur.I_chat;
import Serveur.I_drive;
import java.rmi.RemoteException;
import java.rmi.server.UnicastRemoteObject;
import java.util.ArrayList;
import java.util.LinkedList;

public class ChatClient extends UnicastRemoteObject implements I_ChatClient {
    //Serveur que le client doit utiliser
    private I_chat cs;
    //Serveur que le client doit utiliser
    private I_drive ds;
    //nom du client
    private String nomClient;
    //Liste des clients connectés
    private LinkedList<I_ChatClient> ldlist;
    //Historique des messages du chat 
    public ArrayList <String> history;
    
    public ChatClient(I_chat serv, String nom) throws RemoteException {
        super();
        cs = serv;
        nomClient = nom;
        cs.connecter(this);
    }
    
    public ChatClient(I_drive serv, String nom) throws RemoteException {
        super();
        ds = serv;
        nomClient = nom;
        ds.connecter(this);
    }
    
        @Override
    public synchronized String getNomClient() throws RemoteException {
      return nomClient;
    }
        
        @Override
    public synchronized String recevoir(String message, String auteur, char mode) throws RemoteException {
            String mess = null;
      switch(mode) {
        case 's':
            mess = auteur + " dit : " + message;
          break;
        case 'e':
            mess = auteur + " est entré dans le chat.";
          break;
        case 'l':
            mess = auteur +" dit en privé: "+ message;
          break;
        case 'h':
            mess = message;
          break;
        }
      return mess;
    }
        
}
